//#include <stdio.h>
//#include <string.h>
//int main()
//{
//	char str[]="\\\048\48";
//	int num=sizeof(str);
//	printf("%d",num);
//	return 0;
//}

//#include <stdio.h>
//typedef struct Stu{
//	int age;
//	char gender;
//}Stu;
//
//void Change(Stu A,Stu* B)
//{
//    *B=A;
//	printf("%d,%c\n",B->age,B->gender);
//}
//int main()
//{
//	Stu A={18,'b'},B={17,'g'};
//	Change(A,&B);
//	printf("%d,%c\n",B.age,B.gender);
////	printf("%d,%c",A.age,A.gender);
//	return 0;
//	
//}

//#include <stdio.h>
//int main()
//{
//	char str[100],p[100];
//	int i=0,j=0;
//	gets(str);
//	while(str[i])
//	{
//		p[j++]=str[i];
//		if((i+1)%3==0)
//			p[j++]=' ';
//		i++;
//	}
//	p[j]='\0';
//	printf("%s",p);
//	return 0;
//}

//#include <stdio.h>
//#include <ctype.h>
//int main()
//{
//	char str[100];
//    int i=0,count=0,num[100],k=0,j=0;
//	gets(str);
//	while(str[i])
//	{
//		if(isalpha(str[i-1])&&isdigit(str[i]))
//		{
//			num[k++]=i;
//			count++;
//		}
//		i++;
//	}
//	printf("%d:",count);
//	for(i=0;i<k;i++)
//	{
//		j=num[i];
//		while(isdigit(str[j]))
//			putchar(str[j++]);
//		printf(",");
//	}
//	return 0;
//}

#include <stdio.h>
#include <ctype.h>
int main()
{
	char str[100],*p[100],*p2;
	int i=0,k=0,count=0;
	gets(str);
	while(str[i])
	{
		if(isdigit(str[i]))
		{
			p[k++]=&str[i];
			count++;
			while(isdigit(str[i]))
				i++;
		}
		i++;
	}
	printf("%d:",count);
	for(i=0;i<k;i++)
	{
		p2=p[i];
		while(isdigit(*p2))
		{
			putchar(*p2);
			p2++;
		}
		printf(",");
	}
	printf("\b ");
	return 0;
}
